cm: handle CM for SDR content with cm=hdr, cm_sdr_eotf=2#12127
Conversation
|
Probably should be merged as is if it doesn't break other setups. |
|
@UjinT34 I do want to make the always-on HDR experience as good as possible, like it was from my time using KDE. I like the Auto-HDR feature, and I make use of it a lot, but sometimes I get tired of waiting for a modeset when I toggle fullscreen. My monitor is a Mini-LED, and its local dimming feature is funky in SDR mode. Consuming media in general looks better with HDR on as long as the SDR -> HDR conversion is okay, which I did #12094 to address. |
I'm on the same boat, miniled with long modeset times, that's why I use When autoHDR kicks in, the modeset is instant since wide is already in the correct mode, at least on my case. Cba to calibrate |
|
Finally got around to testing So this branch is an improvement (fixes |
fcc93bc to
db12edf
Compare
|
Rebased and acknowledged different |
db12edf to
e93b932
Compare
e93b932 to
bf44b06
Compare
|
It seems this fixes the issue where |
|
FWIW I'm not thrilled about the verbosity introduced by the handling of Ref: https://gitlab.freedesktop.org/wayland/wayland-protocols/-/merge_requests/442 |
|
Can't test actual HDR right now but on SDR with a color profile it no longer makes color inaccurate in fullscreen (unless |
HDR Content looks normal to me. Also, the colors are fixed in full screen for me with |
|
@Arisa-Snowbell, so what you are saying is that for me, SDR to SDR is fixed when that option is NOT set, but for you on HDR (to HDR?) is fixed ONLY when that is set? |
|
@UjinT34 Thoughts on this one? It's been working for my needs, but I want to make sure it isn't regressing anything. |
|
Hard to tell at a glance. The conditions are too complicated now. DS in general doesn't work for me with wine-wayland and I don't use |
|
is this ready? |
|
@vaxerski Yessir. I haven't found any issues in my use patterns at least. |
Describe your PR, what does it fix/add?
Primarily, stops colors from getting blown out when viewing some SDR content with
cm=hdr.Some SDR surfaces were both skipping color management and getting DS in HDR mode (
cm=hdr, not Auto-HDR) when they shouldn't have been. This PR makes the conditions more strict by checking for SDR<->HDR mismatch, and differentiating being in HDR due to Auto-HDR, or manually usingcm=hdr(edid).Fixing this also brought to light how
cm_sdr_eotf=2would cause DS blockage because rendering sRGB EOTF as Gamma 2.2 on a Gamma 2.2 monitor still compared them incanNoShaderCM()assrgb != gamma22, so I threw in a check for that.Resolves #12104
Is there anything you want to mention? (unchecked code, possible bugs, found problems, breaking compatibility, etc.)
Tested
cm=hdrwith VLC and MPV, and gamescope: No blown-out colorsTested
cm_sdr_eotf=2withvkcube: color management not listed indirectScanoutBlockedByIs it ready for merging, or does it need work?
Ready for merging